/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.AbstractUIComponent;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.AbstractUIComponentImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Action;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Activator;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.ActivatorImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Adaptedaui2android7cuiFactory;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Adaptedaui2android7cuiPackage;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Command;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.InputField;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.InputFieldImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.MultipleChoice;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.MultipleChoiceImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Navigator;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.NavigatorImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.OutputField;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.OutputFieldImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Presentation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.PresentationSystem;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.PresentationUnit;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.PresentationUnitImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Relationship;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Selector;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.SingleChoice;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.SingleChoiceImplementation;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.TemporalOperator;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.UIComponent;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.UIComponentRelationship;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.UIContainerRelationship;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.UIElement;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.UITemporalRelationship;
import vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.UserInterface;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class Adaptedaui2android7cuiPackageImpl extends EPackageImpl implements Adaptedaui2android7cuiPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass presentationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass userInterfaceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass actionEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass presentationUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass uiComponentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass uiComponentRelationshipEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass relationshipEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass uiElementEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass abstractUIComponentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass inputFieldEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass outputFieldEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass selectorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass commandEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass multipleChoiceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass singleChoiceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass navigatorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass activatorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass presentationSystemEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass uiContainerRelationshipEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass uiTemporalRelationshipEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum presentationUnitImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum abstractUIComponentImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum inputFieldImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum outputFieldImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum multipleChoiceImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum singleChoiceImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum navigatorImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum activatorImplementationEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum temporalOperatorEEnum = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2android7cui.Adaptedaui2android7cuiPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private Adaptedaui2android7cuiPackageImpl() {
		super(eNS_URI, Adaptedaui2android7cuiFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link Adaptedaui2android7cuiPackage#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static Adaptedaui2android7cuiPackage init() {
		if (isInited) return (Adaptedaui2android7cuiPackage)EPackage.Registry.INSTANCE.getEPackage(Adaptedaui2android7cuiPackage.eNS_URI);

		// Obtain or create and register package
		Adaptedaui2android7cuiPackageImpl theAdaptedaui2android7cuiPackage = (Adaptedaui2android7cuiPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Adaptedaui2android7cuiPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Adaptedaui2android7cuiPackageImpl());

		isInited = true;

		// Create package meta-data objects
		theAdaptedaui2android7cuiPackage.createPackageContents();

		// Initialize created meta-data
		theAdaptedaui2android7cuiPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theAdaptedaui2android7cuiPackage.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(Adaptedaui2android7cuiPackage.eNS_URI, theAdaptedaui2android7cuiPackage);
		return theAdaptedaui2android7cuiPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPresentation() {
		return presentationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPresentation_Actions() {
		return (EReference)presentationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUserInterface() {
		return userInterfaceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getUserInterface_Name() {
		return (EAttribute)userInterfaceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAction() {
		return actionEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAction_Description() {
		return (EAttribute)actionEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPresentationUnit() {
		return presentationUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPresentationUnit_UiComponents() {
		return (EReference)presentationUnitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPresentationUnit_Relationships() {
		return (EReference)presentationUnitEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPresentationUnit_Implementation() {
		return (EAttribute)presentationUnitEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUIComponent() {
		return uiComponentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUIComponentRelationship() {
		return uiComponentRelationshipEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getRelationship() {
		return relationshipEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRelationship_Label() {
		return (EAttribute)relationshipEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUIElement() {
		return uiElementEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAbstractUIComponent() {
		return abstractUIComponentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractUIComponent_Implementation() {
		return (EAttribute)abstractUIComponentEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInputField() {
		return inputFieldEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getInputField_Implementation() {
		return (EAttribute)inputFieldEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getOutputField() {
		return outputFieldEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getOutputField_Implementation() {
		return (EAttribute)outputFieldEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSelector() {
		return selectorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCommand() {
		return commandEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommand_Destinations() {
		return (EReference)commandEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMultipleChoice() {
		return multipleChoiceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMultipleChoice_Implementation() {
		return (EAttribute)multipleChoiceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSingleChoice() {
		return singleChoiceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSingleChoice_Implementation() {
		return (EAttribute)singleChoiceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getNavigator() {
		return navigatorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getNavigator_Implementation() {
		return (EAttribute)navigatorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getActivator() {
		return activatorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getActivator_Actions() {
		return (EReference)activatorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getActivator_Implementation() {
		return (EAttribute)activatorEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPresentationSystem() {
		return presentationSystemEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPresentationSystem_Presentations() {
		return (EReference)presentationSystemEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPresentationSystem_Name() {
		return (EAttribute)presentationSystemEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUIContainerRelationship() {
		return uiContainerRelationshipEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUIContainerRelationship_Source() {
		return (EReference)uiContainerRelationshipEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUIContainerRelationship_Target() {
		return (EReference)uiContainerRelationshipEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUITemporalRelationship() {
		return uiTemporalRelationshipEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getUITemporalRelationship_Type() {
		return (EAttribute)uiTemporalRelationshipEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUITemporalRelationship_Source() {
		return (EReference)uiTemporalRelationshipEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUITemporalRelationship_Target() {
		return (EReference)uiTemporalRelationshipEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getPresentationUnitImplementation() {
		return presentationUnitImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getAbstractUIComponentImplementation() {
		return abstractUIComponentImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getInputFieldImplementation() {
		return inputFieldImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getOutputFieldImplementation() {
		return outputFieldImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getMultipleChoiceImplementation() {
		return multipleChoiceImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getSingleChoiceImplementation() {
		return singleChoiceImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getNavigatorImplementation() {
		return navigatorImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getActivatorImplementation() {
		return activatorImplementationEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getTemporalOperator() {
		return temporalOperatorEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adaptedaui2android7cuiFactory getAdaptedaui2android7cuiFactory() {
		return (Adaptedaui2android7cuiFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		presentationEClass = createEClass(PRESENTATION);
		createEReference(presentationEClass, PRESENTATION__ACTIONS);

		userInterfaceEClass = createEClass(USER_INTERFACE);
		createEAttribute(userInterfaceEClass, USER_INTERFACE__NAME);

		actionEClass = createEClass(ACTION);
		createEAttribute(actionEClass, ACTION__DESCRIPTION);

		presentationUnitEClass = createEClass(PRESENTATION_UNIT);
		createEReference(presentationUnitEClass, PRESENTATION_UNIT__UI_COMPONENTS);
		createEReference(presentationUnitEClass, PRESENTATION_UNIT__RELATIONSHIPS);
		createEAttribute(presentationUnitEClass, PRESENTATION_UNIT__IMPLEMENTATION);

		uiComponentEClass = createEClass(UI_COMPONENT);

		uiComponentRelationshipEClass = createEClass(UI_COMPONENT_RELATIONSHIP);

		relationshipEClass = createEClass(RELATIONSHIP);
		createEAttribute(relationshipEClass, RELATIONSHIP__LABEL);

		uiElementEClass = createEClass(UI_ELEMENT);

		abstractUIComponentEClass = createEClass(ABSTRACT_UI_COMPONENT);
		createEAttribute(abstractUIComponentEClass, ABSTRACT_UI_COMPONENT__IMPLEMENTATION);

		inputFieldEClass = createEClass(INPUT_FIELD);
		createEAttribute(inputFieldEClass, INPUT_FIELD__IMPLEMENTATION);

		outputFieldEClass = createEClass(OUTPUT_FIELD);
		createEAttribute(outputFieldEClass, OUTPUT_FIELD__IMPLEMENTATION);

		selectorEClass = createEClass(SELECTOR);

		commandEClass = createEClass(COMMAND);
		createEReference(commandEClass, COMMAND__DESTINATIONS);

		multipleChoiceEClass = createEClass(MULTIPLE_CHOICE);
		createEAttribute(multipleChoiceEClass, MULTIPLE_CHOICE__IMPLEMENTATION);

		singleChoiceEClass = createEClass(SINGLE_CHOICE);
		createEAttribute(singleChoiceEClass, SINGLE_CHOICE__IMPLEMENTATION);

		navigatorEClass = createEClass(NAVIGATOR);
		createEAttribute(navigatorEClass, NAVIGATOR__IMPLEMENTATION);

		activatorEClass = createEClass(ACTIVATOR);
		createEReference(activatorEClass, ACTIVATOR__ACTIONS);
		createEAttribute(activatorEClass, ACTIVATOR__IMPLEMENTATION);

		presentationSystemEClass = createEClass(PRESENTATION_SYSTEM);
		createEReference(presentationSystemEClass, PRESENTATION_SYSTEM__PRESENTATIONS);
		createEAttribute(presentationSystemEClass, PRESENTATION_SYSTEM__NAME);

		uiContainerRelationshipEClass = createEClass(UI_CONTAINER_RELATIONSHIP);
		createEReference(uiContainerRelationshipEClass, UI_CONTAINER_RELATIONSHIP__SOURCE);
		createEReference(uiContainerRelationshipEClass, UI_CONTAINER_RELATIONSHIP__TARGET);

		uiTemporalRelationshipEClass = createEClass(UI_TEMPORAL_RELATIONSHIP);
		createEAttribute(uiTemporalRelationshipEClass, UI_TEMPORAL_RELATIONSHIP__TYPE);
		createEReference(uiTemporalRelationshipEClass, UI_TEMPORAL_RELATIONSHIP__SOURCE);
		createEReference(uiTemporalRelationshipEClass, UI_TEMPORAL_RELATIONSHIP__TARGET);

		// Create enums
		presentationUnitImplementationEEnum = createEEnum(PRESENTATION_UNIT_IMPLEMENTATION);
		abstractUIComponentImplementationEEnum = createEEnum(ABSTRACT_UI_COMPONENT_IMPLEMENTATION);
		inputFieldImplementationEEnum = createEEnum(INPUT_FIELD_IMPLEMENTATION);
		outputFieldImplementationEEnum = createEEnum(OUTPUT_FIELD_IMPLEMENTATION);
		multipleChoiceImplementationEEnum = createEEnum(MULTIPLE_CHOICE_IMPLEMENTATION);
		singleChoiceImplementationEEnum = createEEnum(SINGLE_CHOICE_IMPLEMENTATION);
		navigatorImplementationEEnum = createEEnum(NAVIGATOR_IMPLEMENTATION);
		activatorImplementationEEnum = createEEnum(ACTIVATOR_IMPLEMENTATION);
		temporalOperatorEEnum = createEEnum(TEMPORAL_OPERATOR);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		presentationEClass.getESuperTypes().add(this.getUserInterface());
		presentationUnitEClass.getESuperTypes().add(this.getPresentation());
		uiComponentEClass.getESuperTypes().add(this.getUserInterface());
		uiComponentRelationshipEClass.getESuperTypes().add(this.getRelationship());
		uiElementEClass.getESuperTypes().add(this.getUIComponent());
		abstractUIComponentEClass.getESuperTypes().add(this.getUIComponent());
		inputFieldEClass.getESuperTypes().add(this.getUIElement());
		outputFieldEClass.getESuperTypes().add(this.getUIElement());
		selectorEClass.getESuperTypes().add(this.getUIElement());
		commandEClass.getESuperTypes().add(this.getUIElement());
		multipleChoiceEClass.getESuperTypes().add(this.getSelector());
		singleChoiceEClass.getESuperTypes().add(this.getSelector());
		navigatorEClass.getESuperTypes().add(this.getCommand());
		activatorEClass.getESuperTypes().add(this.getCommand());
		uiContainerRelationshipEClass.getESuperTypes().add(this.getUIComponentRelationship());
		uiTemporalRelationshipEClass.getESuperTypes().add(this.getUIComponentRelationship());

		// Initialize classes and features; add operations and parameters
		initEClass(presentationEClass, Presentation.class, "Presentation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPresentation_Actions(), this.getAction(), null, "actions", null, 0, -1, Presentation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(userInterfaceEClass, UserInterface.class, "UserInterface", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getUserInterface_Name(), ecorePackage.getEString(), "name", null, 0, 1, UserInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(actionEClass, Action.class, "Action", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAction_Description(), ecorePackage.getEString(), "description", null, 0, 1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(presentationUnitEClass, PresentationUnit.class, "PresentationUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPresentationUnit_UiComponents(), this.getUIComponent(), null, "uiComponents", null, 0, -1, PresentationUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPresentationUnit_Relationships(), this.getUIComponentRelationship(), null, "relationships", null, 0, -1, PresentationUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPresentationUnit_Implementation(), this.getPresentationUnitImplementation(), "implementation", null, 0, 1, PresentationUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(uiComponentEClass, UIComponent.class, "UIComponent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(uiComponentRelationshipEClass, UIComponentRelationship.class, "UIComponentRelationship", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(relationshipEClass, Relationship.class, "Relationship", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getRelationship_Label(), ecorePackage.getEString(), "label", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(uiElementEClass, UIElement.class, "UIElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(abstractUIComponentEClass, AbstractUIComponent.class, "AbstractUIComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAbstractUIComponent_Implementation(), this.getAbstractUIComponentImplementation(), "implementation", null, 0, 1, AbstractUIComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(inputFieldEClass, InputField.class, "InputField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getInputField_Implementation(), this.getInputFieldImplementation(), "implementation", null, 0, 1, InputField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(outputFieldEClass, OutputField.class, "OutputField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getOutputField_Implementation(), this.getOutputFieldImplementation(), "implementation", null, 0, 1, OutputField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(selectorEClass, Selector.class, "Selector", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(commandEClass, Command.class, "Command", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCommand_Destinations(), this.getPresentation(), null, "destinations", null, 0, -1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(multipleChoiceEClass, MultipleChoice.class, "MultipleChoice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getMultipleChoice_Implementation(), this.getMultipleChoiceImplementation(), "implementation", null, 0, 1, MultipleChoice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(singleChoiceEClass, SingleChoice.class, "SingleChoice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSingleChoice_Implementation(), this.getSingleChoiceImplementation(), "implementation", null, 0, 1, SingleChoice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(navigatorEClass, Navigator.class, "Navigator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getNavigator_Implementation(), this.getNavigatorImplementation(), "implementation", null, 0, 1, Navigator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(activatorEClass, Activator.class, "Activator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getActivator_Actions(), this.getAction(), null, "actions", null, 0, -1, Activator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getActivator_Implementation(), this.getActivatorImplementation(), "implementation", null, 0, 1, Activator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(presentationSystemEClass, PresentationSystem.class, "PresentationSystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPresentationSystem_Presentations(), this.getPresentation(), null, "presentations", null, 0, -1, PresentationSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPresentationSystem_Name(), ecorePackage.getEString(), "name", null, 0, 1, PresentationSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(uiContainerRelationshipEClass, UIContainerRelationship.class, "UIContainerRelationship", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getUIContainerRelationship_Source(), this.getAbstractUIComponent(), null, "source", null, 1, 1, UIContainerRelationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getUIContainerRelationship_Target(), this.getUIComponent(), null, "target", null, 1, 1, UIContainerRelationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(uiTemporalRelationshipEClass, UITemporalRelationship.class, "UITemporalRelationship", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getUITemporalRelationship_Type(), this.getTemporalOperator(), "type", null, 0, 1, UITemporalRelationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getUITemporalRelationship_Source(), this.getUIComponent(), null, "source", null, 1, 1, UITemporalRelationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getUITemporalRelationship_Target(), this.getUIComponent(), null, "target", null, 1, 1, UITemporalRelationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		// Initialize enums and add enum literals
		initEEnum(presentationUnitImplementationEEnum, PresentationUnitImplementation.class, "PresentationUnitImplementation");
		addEEnumLiteral(presentationUnitImplementationEEnum, PresentationUnitImplementation.ACTIVITY);

		initEEnum(abstractUIComponentImplementationEEnum, AbstractUIComponentImplementation.class, "AbstractUIComponentImplementation");
		addEEnumLiteral(abstractUIComponentImplementationEEnum, AbstractUIComponentImplementation.VIEW_GROUP);
		addEEnumLiteral(abstractUIComponentImplementationEEnum, AbstractUIComponentImplementation.LAYOUT);

		initEEnum(inputFieldImplementationEEnum, InputFieldImplementation.class, "InputFieldImplementation");
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.SPINNER);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.AUTO_COMPLETE_TEXT_VIEW);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.EDIT_TEXT);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.SEEK_BAR);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.TIME_PICKER);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.DIGITAL_CLOCK);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.ANALOG_CLOCK);
		addEEnumLiteral(inputFieldImplementationEEnum, InputFieldImplementation.DATE_PICKER);

		initEEnum(outputFieldImplementationEEnum, OutputFieldImplementation.class, "OutputFieldImplementation");
		addEEnumLiteral(outputFieldImplementationEEnum, OutputFieldImplementation.TEXT_VIEW);
		addEEnumLiteral(outputFieldImplementationEEnum, OutputFieldImplementation.LIST_VIEW);
		addEEnumLiteral(outputFieldImplementationEEnum, OutputFieldImplementation.IMAGE_VIEW);
		addEEnumLiteral(outputFieldImplementationEEnum, OutputFieldImplementation.PROGRESS_BAR);
		addEEnumLiteral(outputFieldImplementationEEnum, OutputFieldImplementation.RATTING_BAR);

		initEEnum(multipleChoiceImplementationEEnum, MultipleChoiceImplementation.class, "MultipleChoiceImplementation");
		addEEnumLiteral(multipleChoiceImplementationEEnum, MultipleChoiceImplementation.LIST_VIEW);

		initEEnum(singleChoiceImplementationEEnum, SingleChoiceImplementation.class, "SingleChoiceImplementation");
		addEEnumLiteral(singleChoiceImplementationEEnum, SingleChoiceImplementation.RADIO_BUTTON);
		addEEnumLiteral(singleChoiceImplementationEEnum, SingleChoiceImplementation.SPINNER);
		addEEnumLiteral(singleChoiceImplementationEEnum, SingleChoiceImplementation.LIST_VIEW);
		addEEnumLiteral(singleChoiceImplementationEEnum, SingleChoiceImplementation.TOGGLE_BUTTON);

		initEEnum(navigatorImplementationEEnum, NavigatorImplementation.class, "NavigatorImplementation");
		addEEnumLiteral(navigatorImplementationEEnum, NavigatorImplementation.BUTTON);
		addEEnumLiteral(navigatorImplementationEEnum, NavigatorImplementation.IMAGE_BUTTON);
		addEEnumLiteral(navigatorImplementationEEnum, NavigatorImplementation.MENU_ITEM);

		initEEnum(activatorImplementationEEnum, ActivatorImplementation.class, "ActivatorImplementation");
		addEEnumLiteral(activatorImplementationEEnum, ActivatorImplementation.BUTTON);
		addEEnumLiteral(activatorImplementationEEnum, ActivatorImplementation.IMAGE_BUTTON);
		addEEnumLiteral(activatorImplementationEEnum, ActivatorImplementation.ZOOM_BUTTON);
		addEEnumLiteral(activatorImplementationEEnum, ActivatorImplementation.ZOOM_CONTROL);

		initEEnum(temporalOperatorEEnum, TemporalOperator.class, "TemporalOperator");
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.CHOICE);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.ORDER_INDEPENDENCY);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.CONCURRENT);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.CONCURRENT_WITH_INFO_EXCHANGE);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.DISABLING);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.SUSPEND_RESUME);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.ENABLING);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.ENABLING_WITH_INFO_EXCHANGE);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.ITERATION);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.OPTION);
		addEEnumLiteral(temporalOperatorEEnum, TemporalOperator.UNDEFINED);

		// Create resource
		createResource(eNS_URI);
	}

} //Adaptedaui2android7cuiPackageImpl
